# !/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2022/3/7 9:54 下午
# @Author : 曹庭
# @File : image_storage.py
# @Software: PyCharm

from qiniu import Auth, put_file, etag, put_data

# import qiniu.config

# 需要填写你的 Access Key 和 Secret Key
access_key = 'oNzDk-DW96Tdtuk-AxskEMeB_dmBrdM2DoiR3Qib'
secret_key = 'QAlDXUfK9GQ_u6d7phL-_gRa-bNvqaGXq-0ZTpDG'


def storage(file_data: object) -> object:
    """
    上传文件到七牛
    :param file_data: 要上传的文件数据
    :return:
    """
    # 构建鉴权对象
    q = Auth(access_key, secret_key)

    # 要上传的空间
    bucket_name = 'course-share-awpht06'

    # 生成上传 Token，可以指定过期时间等
    token = q.upload_token(bucket_name, None, 3600)

    ret, info = put_data(token, None, file_data)

    if info.status_code == 200:
        # 表示上传成功，返回文件名
        return ret.get("key")
    elif info.status_code == 614:
        # 表示上传成功，返回文件名
        return "文件已存在"
    else:
        print("status_code:" + str(info.status_code))
        # 表示上传失败
        raise Exception("上传七牛失败")
    # print(type(info))
    # print(info)
    # print(type(info.status_code))
    #
    # print("*" * 10)
    # print(ret)
    # print("*" * 100)


if __name__ == '__main__':
    # file_data = "./avatar.jpg"
    # storage(file_data)
    file_list = ["./蜡笔小新04.jpeg", "./avatar02.jpg"]
    for file in file_list:
        with open(file, "rb") as f:
            file_data = f.read()
            storage(file_data)
